package com.dj.mingkong.portal.biz.util;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dj.mingkong.portal.biz.constant.Constants;
import org.apache.commons.lang3.StringUtils;
import org.springframework.data.domain.Sort;

/**
 * 构建条件查询工具类
 *
 * @author zenglonghui
 * @date: 2022/7/25 18:38
 */
public class WrapperUtil {
    private WrapperUtil() {
    }

    /**
     * 构建排序查询
     *
     * @param queryWrapper 查询封装
     * @param sort 排序字段数据
     * @param <T> 泛型
     */
    public static <T> void buildSort(QueryWrapper<T> queryWrapper, String sort) {
        if (StringUtils.isNotBlank(sort)) {
            String[] split = sort.split(Constants.SPLIT);
            if (Constants.ASC.equals(split[1])) {
                queryWrapper.orderByAsc(split[0]);
            } else {
                queryWrapper.orderByDesc(split[0]);
            }
        }
    }

    public static Sort buildEsSort(String sort) {
        if (StringUtils.isBlank(sort)) {
            return Sort.by(Sort.Direction.DESC, "createTime");
        }
        final String[] split = sort.split(Constants.SPLIT);
        if (Constants.ASC.equals(split[1])) {
            return Sort.by(Sort.Direction.ASC, split[0]);
        }
        return Sort.by(Sort.Direction.DESC, split[0]);
    }
}
